home *** CD-ROM | disk | FTP | other *** search
- unit ColumnSavingU;
-
- interface
-
- uses
- Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
- Db, Grids, DBGrids, DBTables;
-
- type
- TForm1 = class(TForm)
- DBGrid1: TDBGrid;
- DataSource1: TDataSource;
- Table1: TTable;
- DBGrid2: TDBGrid;
- DataSource2: TDataSource;
- Table2: TTable;
- DBGrid3: TDBGrid;
- DataSource3: TDataSource;
- Table3: TTable;
- DBGrid4: TDBGrid;
- DataSource4: TDataSource;
- Table4: TTable;
- DBGrid5: TDBGrid;
- DataSource5: TDataSource;
- Table5: TTable;
- DBGrid6: TDBGrid;
- DataSource6: TDataSource;
- Table6: TTable;
- procedure FormShow(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- private
- Stream: TStream;
- procedure LoadGridsFromStream(AOwner: TComponent);
- procedure SaveGridsToStream(AOwner: TComponent);
- procedure LoadColumnData;
- procedure SaveColumnData;
- public
- { Public declarations }
- end;
-
- var
- Form1: TForm1;
-
- implementation
-
- {$R *.DFM}
-
- const
- ColumnData = 'COLUMNS.DAT';
-
- procedure TForm1.LoadGridsFromStream(AOwner: TComponent);
- var
- I: Integer;
- begin
- for I := 0 to AOwner.ComponentCount - 1 do
- begin
- if AOwner.Components[I] is TDBGrid then
- TDBGrid(AOwner.Components[I]).Columns.LoadFromStream(Stream);
- LoadGridsFromStream(AOwner.Components[I])
- end
- end;
-
- procedure TForm1.SaveGridsToStream(AOwner: TComponent);
- var
- I: Integer;
- begin
- for I := 0 to AOwner.ComponentCount - 1 do
- begin
- if AOwner.Components[I] is TDBGrid then
- TDBGrid(AOwner.Components[I]).Columns.SaveToStream(Stream);
- SaveGridsToStream(AOwner.Components[I])
- end
- end;
-
- procedure TForm1.LoadColumnData;
- begin
- if not FileExists(ColumnData) then
- Exit;
- Stream := TFileStream.Create(ColumnData, fmOpenRead or fmShareDenyWrite);
- try
- LoadGridsFromStream(Application)
- finally
- Stream.Free
- end
- end;
-
- procedure TForm1.SaveColumnData;
- begin
- Stream := TFileStream.Create(ColumnData, fmCreate);
- try
- SaveGridsToStream(Application)
- finally
- Stream.Free
- end
- end;
-
- procedure TForm1.FormShow(Sender: TObject);
- begin
- LoadColumnData
- end;
-
- procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- SaveColumnData
- end;
-
- end.
-